Public cloud systems have become a resilient online resource that allows users to deploy and run applications easily. Typically, different cloud systems provide such resources with different prices, performance, availability and the like. When the users deploy and run an application in a multi-cloud environment, a scheduler is generally used to schedule the application to a certain cloud system for running the application based on information related to the application and cloud system.
More generally, the scheduler may be used to select one or more targets among a plurality of potential candidates. In a multi-cloud system, the scheduler may select different target cloud systems with different kinds of policies which possibly involve performance, costs, reliability and so on. At present, the scheduler typically uses static information or currently obtained transient information to schedule applications based on fixed rules. However, this scheduling approach can hardly achieve good scheduling results in many cases and thus cannot meet the user's requirements.